草庐IT

PHP cURL 看不到/etc/hosts 文件

我在让PHPcURL库识别我在/etc/hosts文件中创建的别名时遇到了麻烦。这是我现在在/etc/hosts文件中的内容:192.168.0.20www.example.dev在另一端(192.168.0.20)Apache配置为在example.dev域上运行虚拟主机。如果我在我的浏览器上测试它,别名就可以工作,但是使用PHPcURL就不起作用。hosts文件在两台机器上(192.168.0.10。为了完整起见,这是我使用的PHP代码。$this->url='http://www.example.dev/';$this->ch=curl_init();$header=array(

php - PHP Curl 中的 cookiejar

在PHPCurl的情况下,当我们需要在网络抓取方面存储/读取cookie时,感觉那里的许多资源都鼓励使用带有这些选项的文件来处理cookiecurl_setopt($ch,CURLOPT_COOKIEJAR,$CookieJarFilename);curl_setopt($ch,CURLOPT_COOKIEFILE,$CookieJarFilename);这里的底线是他们使用单个文件作为cookiejar(通常是.txt文件)。但在实际场景中,我们的网站不仅仅是一台电脑访问的,很可能有很多台电脑同时访问它,而且还有一些机器人,如Googlebots、YahooSlurp等。那么,对于单

php - PHP 的 multi curl 函数有哪些限制?

多curlsession建立的最大并发连接数是否有限制?我正在使用它来处理我需要对API服务进行的批量调用,我只是想注意这不会影响我的应用程序的其余部分。几个问题,curlsession占用了apache服务器可以服务的连接量吗?multicurl是ram还是CPU饥饿操作?我不太关心带宽,因为我有很多带宽,一个强大的快速主机,每个请求只发送和接收少量数据。我想这取决于服务器硬件/配置...但我似乎无法在文档中找到是什么限制了curlsession的数量。 最佳答案 PHP不会对您可以发出的并发curl请求的数量施加任何限制。不过,

php - 使用 curl 发布文件是否有大小限制?

我需要将最大50MB的文件发布到TelegrambotAPI。现在我正在使用Curl并且所有内容都经过测试并成功通过。这意味着我只能发送小文件(我在测试中无法发送8.1MB的文件)。因此,如果我发送大文件(比方说超过8MB),所有$_POST变量都是空的,这意味着没有发布。问题:使用curl发送文件有什么限制吗?因为我让我的服务器管理员在php.ini中增加相关配置,但是他们回答说不是php.ini的问题,而且curl没有限制。 最佳答案 上传限制是一项安全功能。没有它们,流氓程序或攻击者可能会向您的服务器提供连续的数据流,直到您的

php - 强制 cURL 在 HTTP 请求的代理上使用 GET

我正在尝试在本地计算机上使用转发代理服务器(ApacheTrafficServer或Squid)作为我的cURL调用的本地HTTP缓存。我设置代理使用:curl_setopt($ch,CURLOPT_PROXY,'http://localhost:8080');当我查询HTTP网站时,cURL执行标准的HTTPGET代理请求,可以正确缓存:GEThttp://example.com/HTTP/1.1但是,当查询HTTPs网站时,cURL会执行CONNECT,有效地将代理用作TCP隧道,并阻止它缓存响应:CONNECTexample.com:80HTTP/1.1有没有办法强制cURL执行

php - 如何防止使用 PHP cURL 重定向

我正在开发一个表格,要求将收集的数据提交给第三方网站,格式为:http://www.domain.com/page?key=value&key2=value2我决定使用cURL,因为我还没有找到让我信服的替代方案。我正在运行的问题是一旦表单被提交,cURL被执行但我被重定向到我指定的域。相反,我想将用户重定向到我域中的确认页面,而不是第三方网站。这是我正在使用的代码示例:$URL="otherserver.domain.com";$ch=curl_init();curl_setopt($ch,CURLOPT_URL,"http://$URL");curl_setopt($ch,CURL

带有 CURLOPT_FOLLOWLOCATION 错误的 php curl

我遇到了一个错误CURLOPT_FOLLOWLOCATIONcannotbeactivatedwhensafe_modeisenabledoranopen_basedirissetin我用谷歌搜索了很多解决方案,但在这个网站上它们不起作用。只需要CURLOPT_FOLLOWLOCATION。愚蠢的托管者不想启用safe_mode或open_basedir。我可以自己启用它们吗,可以用一些参数创建htaccess吗? 最佳答案 该错误意味着safe_mode或open_basedir已启用(可能是open_basedir),如果您的主

PHP Curl,请求数据返回application/json

我正在尝试从API获取一些数据,目前我正在将其作为XML返回。我更喜欢它作为jSON,API文档说它在jSON和XML中可用。文档说...TheAPIcurrentlysupportstwotypesofresponseformat:XMLandJSONYoucanspecifythedesiredformatusingtheHTTPAcceptheaderintherequest:Accept:application/xmlAccept:application/json那么如何在我的PHP代码中生成applixation/json的AcceptHeader呢?我现在的PHP代码是:h

PHP Curl,我在哪里可以找到常量的整数等价物列表

我使用的是CodeigniterCurl库,作者使用了curl选项的整数等价物。php手册针对curl_setopt_array说明了这一点:Thekeysshouldbevalidcurl_setopt()constantsortheirintegerequivalents.我如何计算出常量的等价整数?我用谷歌搜索了它,但没有找到任何东西。谢谢,马克 最佳答案 $arr=get_defined_constants(true);var_dump($arr['curl']); 关于PHPC

php - 使用 PHP 转义 CURL @ 符号

我正在编写一个php应用程序,它通过curl数据提交以注册iContact电子邮件列表。但是我不断收到无效的电子邮件地址错误。我认为这可能是因为我转义了@符号,所以它看起来像%40而不是@。此外,根据带有CURLOPT_POSTFIELDS的curl_setopt的php文档:ThefulldatatopostinaHTTP"POST"operation.Topostafile,prependafilenamewith@andusethefullpath.那么,是否可以通过php中的curl将@符号作为发布数据传递,而无需首先通过urlencode运行它?